'use strict';
//1.获取数据库的引用
const  db=uniCloud.database()

//声明一个聚合操作符
const $ = db.command.aggregate

exports.main = async (event, context) => {
	console.log('event : ', event)
	//event会接收到传进来的数据
	const {
		   user_id,
		   name,
		   page=1,
		   pageSize=10
		   } = event  //同等于 var name = event.name
	
	let matchObj = {}
	if(name!=='全部'){
		matchObj = {
			classify:name
		}
	}
	//获取user表  user_id 
	console.log("user_id",user_id)
	const userinfo = await db.collection('user').doc(user_id).get()
	const article_likes_ids = userinfo.data[0].article_likes_ids
	
	//使用另外一种方式获取数据-----集合：更精确的处理数据：求和、分组、指定那些返回哪些字段
	const list = await db.collection('article')
	.aggregate()
	//字段追加
	.addFields({
		// .in()方法 当前某一个数组是否包含某一个字段:包含返回true否则返回false
		is_like: $.in(["$_id",article_likes_ids])
	})
	.match(matchObj)
	.project({
		//功能类似下面的 .field()
		content:false,
	})
	   //跳过多少条数据
	.skip(pageSize*(page-1))
	  //限定输出
	.limit(pageSize)
	.end()
	
	// //2.获取数据
	// let list = await db.collection('article')
	// .field({
	// 	//选择 或 过滤数据
	// 	content:false,
	// 	method:false   //过滤掉content的数据
	// }).get()
	
	//返回数据给客户端
	return {
		code:200,
		message:"数据请求成功",
		data:list.data
	}
};
